Work performed with electronic devices is generally performed in an interactive way, where the electronic device (computer, handheld device, wireless device, etc.) presents data to a user for work, and the user performs one or more actions on the data. The user may also create data in an application, which data can then be made part of the system or otherwise be interacted with. The user experience with the work environment and/or the data to be worked includes how the data is presented to the user for interaction.
Many current user interfaces (UIs) are built on a model-view-controller (MVC) based architecture intended to decouple the data model (M), the interaction control (C), and the appearance or view (V). Although such architectures are intended to decouple the different layers of the architecture, there is still dependency between the layers, which weakens the decoupling of the layers. Thus, contrary to what is expected, the reality is that traditional separation in these layers does not make the layers agnostic to each other. Backend services are built to feed the model of UI-patterns, and the controller supports the behavior of the visual layer. Because of these interdependencies, the enabling of UI-patterns requires sophisticated knowledge about available services and programming skills to integrate the layers. The traditional requirements for knowledge and programming skills results in higher development and maintenance costs to generate multi-modal support. Traditional approaches to the use of MVC have resulted in the creation of applications that are very complex (e.g., end user modeling is difficult). Additionally, the interdependencies in the M, C, and V layers limit the ability for reuse (e.g., there are platform and presentation dependencies). Thus, the creation of applications with MVC has traditionally only partly met the design goals of MVC.
One area affected by the above limitations of current technology is with the introduction of enterprise service architecture (ESA) into the enterprise. Service-oriented architecture (SOA) has enabled platforms to deconstruct database-oriented business applications into highly flexible chunks of content and functionality that reflect the context of business situations better than previous monolithic applications. With ESA, business applications resemble more a bundle of resources than a monolithic transaction or application. The advent of ESA also coincides with the fact that applications and functionality are being applied to multi-channel, multi-modal occasionally connected (OCA) user experiences. Current solutions are either built on the monolithic application approach, or built as compositions of UIs tightly coupled to specific UI channels. That is, data are bound to UI components and floorplans to arrange business content to serve specific scenarios, but each must be separately developed for each scenario, and each UI channel. There is a resulting lack of re-use of screen-oriented service compositions, and a lack of multi-channel accessibility.
Although users expect pervasive access to business context data, traditional systems do not support the providing of information and tools for multi-channel, multi-modal OCA user experiences. Users have traditionally had to adapt expectations and behavior to deal with limited connectivity, limited access to data, and limited ability to perform work on tasks. The simple fact that applications for different channels have had to be re-implemented from scratch for each channel has significantly reduced the possibility of consistency of user experience across channels.